// pages/profile/index.ts
Page({
  data: {
    userinfo: null,
  },
  onLoad() {
    // 获取本地存储中的数据，设置到data中
    const userinfo = wx.getStorageSync('userinfo')
    this.setData({ userinfo })
  },
 // 选择头像
 onChooseAvatar(ev) {
  // console.log(ev)
  // 1 获得 临时选择头像 - 临时 内存地址
  const { avatarUrl } = ev.detail
  // 2 把头像 上传到 后台服务器 - 返回该头像在线地址  url
  // 不能利用请求拦截器的功能
  wx.uploadFile({
    url: wx.http.baseURL + '/upload', // 上传的地址
    filePath: avatarUrl, // 上传的文件的临时地址
    name: 'file', // 文件的key file 接口文档来写
    header: {
      // 自己携带token
      Authorization: `Bearer ${getApp().token}`,
    },
    formData: {
      type: 'avatar', // 接口文档要求填写
    },
    success: async (res) => {
      // 成功上传后的图片地址
      console.log(res) // 后端响应的结果 res.data 是json字符串，无法直接使用，需要我们自己解析
      const resData = JSON.parse(res.data)
      const avatar = resData.data.url // 获取到了在线头像地址

      // 发送请求 完成头像的修改
      const avatarRes = await wx.http({
        url: '/userInfo',
        method: 'put',
        data: { avatar },
      })

      console.log(avatarRes)

      // 给出成功的提示
      wx.utils.toast('修改头像成功')

      // 实时更新 data中的用户头像 页面实时变化
      this.setData({
        // 简写修改对象中某个属性写法
        'userinfo.avatar': avatar,
      })
    },
  })
  // 把头像的在线地址 调用 修改个人信息接口，把地址传递给接口 完成头像的修改
},

  //修改昵称
  async onNickNameChange(e) {
    const nickName = e.detail
    if (!nickName) return wx.utils.toast('昵称不为空')

    //调用接口 完成昵称修改
    const res = await wx.http({
      url: '/userInfo',
      method: 'put',
      data: { nickName },
    })
    console.log(res)
    wx.utils.toast('昵称修改成功')

    //实时更新data中的数据
    this.setData({
      //简写修改对象中某个属性写法
      'userinfo.nickName': nickName
    })
  }
})
